package com.codejiwei.flink.practice;

import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;

/**
 * @author jiwei
 * @description
 * @date 2023/5/19 17:18
 */
public class Flink_Transform_Shuffle {
    public static void main(String[] args) throws Exception {
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        env.setParallelism(3);
        env.fromElements(10, 3, 5, 9, 20, 8, 45, 32, 22, 17)
//                .keyBy(ele -> ele % 2 == 0)   //先按照key分组, 按照key的双重hash来选择后面的分区
//                .shuffle()    //流中数据随机分区
//                .rebalance()    //流中元素平均分布到每个区，当处理倾斜数据的时候进行性能优化
                .rescale()  //同rebalance一样, 也是平均循环的分布数据. 但是要比rebalance更高效, 因为rescale不需要通过网络, 完全走的"管道"
                .print();

        env.execute();
    }
}
